// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'ZSqlScanner.pas' rev: 5.00

#ifndef ZSqlScannerHPP
#define ZSqlScannerHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <ZSqlTypes.hpp>	// Pascal unit
#include <ZScanner.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Zsqlscanner
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TZZSqlScanner;
class PASCALIMPLEMENTATION TZZSqlScanner : public Zscanner::TZZScanner 
{
	typedef Zscanner::TZZScanner inherited;
	
protected:
	Zsqltypes::TDatabaseType FDatabaseType;
	virtual int __fastcall LowRunLex(int &CurrPos, int &CurrLineNo, AnsiString &CurrToken);
	virtual int __fastcall InnerProcSqlComment(int &CurrPos, int &CurrLineNo, AnsiString &CurrToken);
	virtual int __fastcall InnerProcSqlString(int &CurrPos, int &CurrLineNo, AnsiString &CurrToken);
	virtual int __fastcall InnerProcSqlIdent(int &CurrPos, int &CurrLineNo, AnsiString &CurrToken);
	virtual int __fastcall InnerProcSqlDelim(int &CurrPos, int &CurrLineNo, AnsiString &CurrToken);
	
public:
	__fastcall virtual TZZSqlScanner(void);
	virtual AnsiString __fastcall WrapString(AnsiString Value);
	virtual AnsiString __fastcall UnwrapString(AnsiString Value);
	AnsiString __fastcall ExtractSpaces();
	AnsiString __fastcall ExtractStatement(int &CurrPos, int &CurrLen, int &CurrLineNo);
	__property Zsqltypes::TDatabaseType DatabaseType = {read=FDatabaseType, nodefault};
public:
	#pragma option push -w-inl
	/* TZZScanner.Destroy */ inline __fastcall virtual ~TZZSqlScanner(void) { }
	#pragma option pop
	
};


class DELPHICLASS TZZIbSqlScanner;
class PASCALIMPLEMENTATION TZZIbSqlScanner : public TZZSqlScanner 
{
	typedef TZZSqlScanner inherited;
	
public:
	__fastcall virtual TZZIbSqlScanner(void);
public:
	#pragma option push -w-inl
	/* TZZScanner.Destroy */ inline __fastcall virtual ~TZZIbSqlScanner(void) { }
	#pragma option pop
	
};


class DELPHICLASS TZZMsSqlScanner;
class PASCALIMPLEMENTATION TZZMsSqlScanner : public TZZSqlScanner 
{
	typedef TZZSqlScanner inherited;
	
protected:
	virtual int __fastcall InnerProcSqlComment(int &CurrPos, int &CurrLineNo, AnsiString &CurrToken);
	
public:
	__fastcall virtual TZZMsSqlScanner(void);
public:
	#pragma option push -w-inl
	/* TZZScanner.Destroy */ inline __fastcall virtual ~TZZMsSqlScanner(void) { }
	#pragma option pop
	
};


class DELPHICLASS TZZOraSqlScanner;
class PASCALIMPLEMENTATION TZZOraSqlScanner : public TZZSqlScanner 
{
	typedef TZZSqlScanner inherited;
	
public:
	__fastcall virtual TZZOraSqlScanner(void);
public:
	#pragma option push -w-inl
	/* TZZScanner.Destroy */ inline __fastcall virtual ~TZZOraSqlScanner(void) { }
	#pragma option pop
	
};


class DELPHICLASS TZZPgSqlScanner;
class PASCALIMPLEMENTATION TZZPgSqlScanner : public TZZSqlScanner 
{
	typedef TZZSqlScanner inherited;
	
protected:
	virtual int __fastcall InnerProcSqlComment(int &CurrPos, int &CurrLineNo, AnsiString &CurrToken);
	virtual int __fastcall InnerProcSqlString(int &CurrPos, int &CurrLineNo, AnsiString &CurrToken);
	
public:
	__fastcall virtual TZZPgSqlScanner(void);
	virtual AnsiString __fastcall WrapString(AnsiString Value);
	virtual AnsiString __fastcall UnwrapString(AnsiString Value);
public:
	#pragma option push -w-inl
	/* TZZScanner.Destroy */ inline __fastcall virtual ~TZZPgSqlScanner(void) { }
	#pragma option pop
	
};


class DELPHICLASS TZZMySqlScanner;
class PASCALIMPLEMENTATION TZZMySqlScanner : public TZZSqlScanner 
{
	typedef TZZSqlScanner inherited;
	
protected:
	virtual int __fastcall InnerProcSqlComment(int &CurrPos, int &CurrLineNo, AnsiString &CurrToken);
	virtual int __fastcall InnerProcSqlString(int &CurrPos, int &CurrLineNo, AnsiString &CurrToken);
	
public:
	__fastcall virtual TZZMySqlScanner(void);
	virtual AnsiString __fastcall WrapString(AnsiString Value);
	virtual AnsiString __fastcall UnwrapString(AnsiString Value);
public:
	#pragma option push -w-inl
	/* TZZScanner.Destroy */ inline __fastcall virtual ~TZZMySqlScanner(void) { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE TZZSqlScanner* __fastcall CreateSqlScanner(Zsqltypes::TDatabaseType DatabaseType);

}	/* namespace Zsqlscanner */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Zsqlscanner;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// ZSqlScanner
